package com.bt.dmdb.dao;

import java.util.List;
import java.util.Map;

import org.joda.time.LocalDateTime;

import com.bt.dmdb.model.*;


public interface LoginUsersDao {
	
	String MAKER_DATA_COLLECTION_PENDING= "Maker-Data Collection-Pending";
	String MAKER_DUE_DILIGENCE_QUESTIONNAIRE_PENDING= "Maker-Due-Diligence Questionnaire-Pending";
	String MAKER_DATA_COLLECTION_REINITIATED_PENDING= "Maker-Data Collection Reinitiated-Pending";
	String CHECKER_REVIEW_PENDING = "Checker-Review Pending";
	String CHECKER_APPROVED_RESOLVED = "Checker Approved-Resolved";
	String CHECKER_REJECTED_RESOLVED = "Checker Rejected-Resolved";
	
    LoginUser validateUser(String userName, String password);
    List<CustomerQuestion> getResponseNFFE(long id);
    List<CustomerQuestion> getResponseSpecNFFE(long id);
    List<CustomerQuestion> getResponseSpecFFI(long id);
    
    List<CustomerQuestion> getResponseFFI(long id);

    LoginUser getLoggedInUser(Long userId);

    List<LoginUser> findAllUsers();

    void addUser(String firstName, String lastName, String emailId, String password, String role);

    LoginUser findUserById(long Id);

    void editUser(Long id, String firstName, String lastName, String emailId, String password, String role);

    LoginUser getUser(String login);

    CustomerDetails addCustomerDetails(CustomerDetails details, LoginUser loginUser);

    List<CustomerDetails> findAllCustomers();

    CustomerDetails findCustomerById(long id);
    List<LoginUser> findAllCheckers();
    List<Question> findQuesByCategory(String category);
    Object[] getCatClassByQId(Long id);
    

//    void saveDocs(Blob doc);
    
    void saveDocs(Long custID, Long docId, String fileName,LocalDateTime localDateTime,String filePath);
    
    List<Document> getDocuments();
    List<Document> getDocuments1();
    List<CustomerDocument> findDocumentByCustId(long id);
    List<Question> findNFFECommonQuestion();
    Map<Object, Object> findMakerInitialQuestion();
    List<Document> getDocumentNames();
    
    Object[] saveMakerInitialQuest(String custID, String catL, String quesId0, String ansId0, String quesId1, String ansId1, String catdd);

    List<Object> getListOfNFFECategory();

	List<Object> getListOfFFICategory();
	List<CustomerDetails> findAllCustomersChecker();
	//Map<List<Integer>, Document> getRules();
	List<Document> findDocumentRules();
	List<CustomerDocument> documentUploded(long id);
	Map<Long,DocumentDto> getRules();
	void saveDocumentRulesByDocId(DocumentDto y);
	void deleteByCustomerId(CustomerDocument y);
	void deleteAdminByDocumentId(Document y);
	List<DocumentDto> getAdminDocRules();
	void deleteUserById(long id);
	void saveAllUsers(List<LoginUser> y);
	void saveAllBusinessNature(List<BusinessNature> y);
	void saveAllEagMemberStatus(List<MemberStatus> y);
	void saveAllPassiveIncome(List<EagPassiveIncome> y);
	void saveAllExchangeMarket(List<Market> y);
	void saveAllLocation(List<Locations> y);
	void saveAllRegulators(List<Regulators> y);
	void saveAllRestrictedDistributor(List<RestrictedDistributor> y);
	void saveAllStocksDistribution(List<StocksDistribution> y);
	void saveAllSourceIncome(List<SourceIncome> y);
	void saveAllContact(List<Contact> y);
	List<CustomerDetails> getAllAuditor();
	List<CustomerDetails> getAllCustomers();
}
